import { ActionReducerMap } from '@ngrx/store';

import { LayerState, LayerReducer } from './layer.reducer';
import { ViewState, ViewReducer } from './view.reducer';
import { MouseReducer } from './mouse.reducer';
import { MousePosition } from '../../models';
import { NgxOlState, ngxOlReducer } from './ngx-ol.reducer';
import { MapState, mapReducer } from './map.reducer';

export * from './layer.reducer';
export * from './ngx-ol.reducer';


export interface OlState {
    layers: LayerState,
    view: ViewState,
    mouse: MousePosition,
    ngx_ol: NgxOlState,
    map: MapState
}

export const olReducers: ActionReducerMap<OlState> = {
    layers: LayerReducer,
    view: ViewReducer,
    mouse: MouseReducer,
    ngx_ol: ngxOlReducer,
    map: mapReducer
}